package com.shopping.controller;

import com.shopping.pojo.Result;
import com.shopping.pojo.User;
import com.shopping.security.JwtUtil;
import com.shopping.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@Slf4j
@RestController
@RequestMapping("/api/login")
public class LoginController {
    @Autowired
    private UserService userService;

    @Autowired
    private JwtUtil jwtUtil;


    //顾客登录
    @PostMapping("/user")
    public Result UserLogin(@RequestBody User user){
        log.info("顾客登录:{}",user);
        Integer authenticated=userService.authenticate(user.getUsername(),user.getPassword());
//      authenticated在这里还代表着userId（图方便就这么写了)
        if (authenticated!=0) {
            // 生成 JWT 并包含角色信息
            String token = jwtUtil.generateToken(user.getUsername(), "CUSTOMER",authenticated);
            log.info("顾客登录,身份为CUSTOMER，返回的token为:{}",token);
            return Result.success(token); // 返回 JWT 和重定向路径
        } else {
            return Result.error("用户名或者密码错误");
        }

    }
    //销售管理员登录
    @PostMapping("/admin")
    public Result AdminLogin(@RequestBody User user) {
        log.info("管理员登录:{}", user);
        Integer authenticated=userService.Adminauthenticate(user.getUsername(),user.getPassword());
        if (authenticated!=0) {
            // 生成 JWT 并包含角色信息
            String token = jwtUtil.generateToken(user.getUsername(), "ADMIN",authenticated);
            log.info("管理员登录,身份为:ADMIN,返回的token为:{}", token);
            return Result.success(token); // 返回 JWT 和重定向路径

        } else {
            return Result.error("用户名或者密码错误");
        }
    }


}
